home *** CD-ROM | disk | FTP | other *** search
/ MacFormat España 26 / macformat_26.iso / Shareware / Programación / C Reference Card / C Reference Card.rsrc / TEXT_409_9.txt < prev    next >
Text File  |  1997-01-29  |  1KB  |  60 lines

  1. OPERATOR OVERLOADING
  2. _________________________________________________________________________
  3.  
  4.  
  5. You can use the 'operator' keyword to overload normal C operators to perform basic functions like adding and subtracting the way you would normally, by using the '+' and '-' symbols.  Thus, instead of creating a function to do something like this:
  6.  
  7.   Vector = myAddTwoVectors( Vector1, Vector2 );
  8.  
  9. you would overload the '+' operator so that the above statement would look like this:
  10.  
  11.   Vector = Vector1 + Vector2;
  12.  
  13. The mechanics for operator overloading are shown in the following code segment:
  14.  
  15.  
  16.  // vector.cp
  17.   #include <iostream.h>
  18.   
  19.   class Vector
  20.   {
  21.       float x;
  22.       float y;
  23.     public:
  24.       Vector( int a, int b );
  25.       Vector &operator+( Vector &V );
  26.       void print( void );
  27.   };
  28.   
  29.   Vector::Vector( int a, int b )
  30.   {
  31.     x = a;
  32.     y = b;
  33.   }
  34.   
  35.   Vector &Vector::operator+( Vector &V )
  36.   {
  37.     Vector resultV( 0, 0 );
  38.     
  39.     resultV.x = x + V.x;
  40.     resultV.y = y + V.y;
  41.     
  42.     return resultV;
  43.   }
  44.   
  45.   void Vector::print( void )
  46.   {
  47.     cout << "x: " << x << endl;
  48.     cout << "y: " << y << endl;
  49.   }
  50.   
  51.   void main( void )
  52.   {
  53.     Vector vectorA( 3, 4 );
  54.     Vector vectorB( 2, 7 );
  55.     Vector vectorResult( 0, 0 );
  56.     
  57.     vectorResult = vectorA + vectorB;
  58.     vectorResult.print();
  59.   }
  60.   // end vector.cp